# 列表支持增删改查
alst = []
blst = [211, 'abc', '测试']  # 注意列表内可以放任何数据类型，并无限制
print(alst)
print(blst)
# 索引查询：
print(blst[2])

# 循环查询：
for x in blst:
    print(x, end='')
print()

# 索引修改(只有列表支持这种修改方式)：
clst = ['hi', 117, None, False, 3.1415926]
clst[3] = True
print(clst)  # 注意：当索引不存在时，代码报错

"""
list.index(obj):从列表中找出这个元素的位置(存在多个仅查排序在最前面的位置)，若这个元素不存在操作将报错
list.count(obj):从列表中查询这个元素出现的次数
list.insert(index, obj):向列表中一个位置插入一个元素，这个位置及之后的原来的元素将顺延，若这个位置不存在，会在列表首部或尾部添加元素
list.append(obj):向列表中末尾位置插入一个元素
list.extend(seq):将另一个序列添加到这个列表中
list.remove(obj):删除列表中这个元素(存在多个仅删除排序在最前面的)，若这个元素不存在操作将报错
list.pop():删除列表中最后那个元素(括号内可写索引位置数，则精准删除对应位置的元素)，此操作结束后将返回被删除的元素
list.clear():清空整个列表
list.copy():复制整个列表，等价操作是：list[:]，注意两者都不对原列表产生影响，都生成新的列表
list.sort():给列表中的元素排序，按ASCⅡ码排序，若想倒序排列，在括号中加上reverse=True
list.reverse():把列表中的元素进行翻转，等价操作是：list[::-1]，注意前者是在原列表上操作，原列表会被改变，后者会生成新的列表，原列表不变
list(set(list)):列表去重，其中set()把去重对象转换为集合类型，集合的特点就是不允许存在重复数据，最后利用list()再把已去重的集合类型转换为列表
这个操作会产生新的列表，原列表不会变更，而且一旦去重生效新生列表各元素顺序往往不遵循旧表
若想去重后顺序不会被打乱，可以使用遍历配合重复判断，滤出去重的新列表，由于遍历，所以顺序会保留
"""
dlst = ['ror', 'eve', 'gogo', 'fdisk', 'ls', 'cd', 'ls', 'node', 'www']
print(dlst.index('gogo'), type(dlst.index('gogo')))
print(dlst.count('ls'))
print(dlst.insert(8, 'online'))
print(dlst.append('qwq'))
print(dlst.extend(clst))
print(dlst.remove(None))
print(dlst)
dlst.pop()
print(dlst)
elst = ['这是个删除测试', 18062]
elst.clear()
print(elst)
dlst.remove(True)
print(dlst)
dlst.pop()
print(dlst)
dlst.sort()
print(dlst)
dlst.reverse()
print(dlst)
print(alst)
alst.append('lll')
alst.append(123)
print(alst)
alst = dlst.copy()
print(alst)
